// proc.cpp
using namespace std;
#include "proc.h"
#include "hotell.h"
#include "const.h"
#include "timer2.h"


void skriv_meny()							// Skriv_meny med oversikt 
{											// over lovlige kommandoer.
  cout << "\n\nFOLGENDE KOMMANDOER ER TILGJENGELIGE:";
  cout << "\n\tB - Bestille/reservere/booke et rom";
  cout << "\n\tA - Avbestille en bestilling";
  cout << "\n\tI - Innsjekking paa hotellet";
  cout << "\n\tU - Utsjekking fra hotellet";
  cout << "\n\tR - Registrere regning paa rom";
  cout << "\n\t\tE1 - Endre ankomst og/eller avreisedato for innsjekking";
  cout << "\n\t\tE2 - Endre avreisedato naar innsjekket";
  cout << "\n\t\tE3 - Bytte til annet ledig rom";
  cout << "\n\t\tO1 - Hoveddata om et hotell";
  cout << "\n\t\tO2 - Beskrivelse av ALLE hotellets suiter";
  cout << "\n\t\tO3 - Alle reservasjoner i en persons navn";
  cout << "\n\t\tO4 - Sjekke om naar et rom er ledig";
  cout << "\n\t\tO5 - Alle reservasjoner for et rom";
  cout << "\n\t\tO6 - Alle data for et roms beboer, inkl. regninger";
  cout << "\n\t\tO7 - Alle ledige rom i en kategori en gitt tidsperiode";
  cout << "\n\tT - Skriv data om gjeldene hotell til fil";
  cout << "\n\tH - Bytt til annet hotell";
  cout << "\n\tQ - Quit / avslutt";
}



// Leser inn ett tegn og gjør om til uppercase:
char les(char t[])  {        					
  char ch;
  cout << '\n' << t << ":  ";   			
  cin >> ch;   cin.ignore();    			
  return (toupper(ch));        				
}


// Leser inn ett tegn, så en streng av gitt lengde i UPPERCASE:
void les(char t[], char s[], const int LEN) {   
	cout << '\n' << t << ": ";
	do {
		cin.getline(s, LEN);
	} while(strlen(s) == 0);
	for(int i=0;s[i]!='\0';i++)
	{
		s[i]=toupper(s[i]);
	}
}
// Leser et tall i et gitt intervall. 
int les_tall(char* t, int min, int max)
{
	int tall;
	do {
		cout << "\t" << t << " (" << min << '-' << max << "): ";
		cin >> tall; cin.ignore();
	} while (tall < min ||  tall > max);
	return tall;
}

int tilfeldig(int i)			//For å returnere et tilfeldig romnr. innnenfor range
{
	int tilfeldig_rom;			//Hjelpevariabel
		switch (i)				//switch
	{
		case 0:									//Om singelrom
		
			srand (time(NULL));
			tilfeldig_rom = rand() % 10 + 101;	//Tilfeldig mellom 101-110
			return tilfeldig_rom;				//Returnerer det tilfeldige nr.
			;break;
		
		case 1:									//Om dobbelrom
			
			srand (time(NULL));					
			tilfeldig_rom = rand() % 5 + 201;	//Tilfeldig mellom 201-205
			return tilfeldig_rom;				//Returnerer det tilfeldige nr.
			;break;
		case 2:									//Om suite
			srand (time(NULL));
			tilfeldig_rom = rand() % 4 + 301;	//Tilfeldig mellom 301-304
			return tilfeldig_rom;				//Returnerer det tilfeldige nr.
			;break;
	}
}

void skriv_hotell()		//Lister ut hotell valgene, som er i HOTELLER.DTA
{
  cout << "\n\nFOLGENDE HOTELLER ER TILGJENGELIGE:";
  cout << "\nRadisson Blu Hotel Oslo";
  cout << "\nRica Hotel Bergen";
  cout << "\nThon Hotel & Apartments Trondheim";
  cout << "\nBJORNLIA HOTEL";
  cout << "\nFIRST HOTEL STAVANGER";
  cout << "\nNORDIC CHOICE HOTEL & APARMENTS";
  cout << "\nTROLLSTIEN HOTEL";
  cout << "\nLILLEHAMMER CITY HOTEL";
  cout << "\nAKERSHUS FESTNING HOTEL";
  cout << "\nDRAKO RESORTS";
  cout << "\nFJELLTOPPEN HOTEL & SPA";
  cout << "\nHOTEL CALIFORNIA";
  cout << "\nHARD ROCK HOTEL";
  cout << "\nTOKIO HOTEL";
}
